package com.hjq.mapper;

import com.hjq.pojo.Emp;
import com.hjq.pojo.LoginInfo;
import com.hjq.pojo.queryparam.EmpQueryParam;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

/**
 * 员工信息表
 */
@Mapper
public interface EmpMapper {

    // /**
    //  * 查询员工总记录数
    //  * @return 员工总记录数
    //  */
    // @Select("select count(*) total from emp e left join dept d on e.dept_id=d.id;")
    // Long count();

    // /**
    //  * 分页查询员工信息
    //  * @param start 起始索引
    //  * @param pageSize 每页显示条数
    //  * @return 员工列表
    //  */
    // @Select("select e.*,d.name deptName from emp e left join dept d on e.dept_id=d.id " +
    //         "order by e.update_time desc limit #{start},#{pageSize}")
    // List<Emp> list(Integer start, Integer pageSize);

    // /**
    //  * 查询所有员工信息
    //  * @return 员工列表
    //  */
    // @Select("select e.*,d.name deptName from emp e left join dept d on e.dept_id=d.id")
    // public List<Emp> list(String name, Integer gender, LocalDate begin, LocalDate end);

    // public List<Emp> list(String name, Integer gender, LocalDate begin, LocalDate end);

    /**
     * 根据条件查询员工信息
     * @param empQueryParam 查询参数对象，包含姓名、性别、入职时间范围等条件
     * @return 符合条件的员工列表
     */
    public List<Emp> list(EmpQueryParam empQueryParam);

    //获取自动生成的主键，封装到传递过来的对象的属性中
    // @Options(useGeneratedKeys = true,keyProperty = "id")
    void insert(Emp emp);


    void delete(List<Integer> ids);

    Emp findById(Integer id);

    void update(Emp emp);
    @MapKey("pos")
    List<Map<String, Object>> getEmpJobData();
    @MapKey("name")
    List<Map<String, Object>>getEmpGenderData();

    List<Emp> findAll();

    Emp selectByUsernameAndPassword(Emp emp);
}
